🏠↩︎ De vuelta a la página principal del curso
🚀 Objetivo de la unidad
Que el estudiante reconozca los conceptos básicos de programación y sus casos de uso prácticos básicos.
Nota importante: Los siguientes módulos prácticos son lineales.
💡 La función print() imprime el valor que contiene el objeto ubicado entre los paréntesis.
💡 n:y genera una serie de números consecutivos entre n y y.
a <- TRUE
mi_variable <- c(FALSE, TRUE)
La variable a guardará un vector lógico a partir del resultado del resultado de una operación lógica.
b <- 3 == 3
print(b)
## [1] TRUE
x <- "¡Hola, mundo!"
print(x)
## [1] "¡Hola, mundo!"
y <- c("2", "3", "dos", "tres")
print(y)
## [1] "2" "3" "dos" "tres"
s <- 42L
print(s)
## [1] 42
t <- c(2L, 3L, NA)
print(t)
## [1] 2 3 NA
i <- 42
print(s)
## [1] 42
j <- c(sqrt(2) ^ 2, 1, Inf)
print(t)
## [1] 2 3 NA
ages <- list(22, 23, 22, 21, 25)
print(ages)
## [[1]]
## [1] 22
##
## [[2]]
## [1] 23
##
## [[3]]
## [1] 22
##
## [[4]]
## [1] 21
##
## [[5]]
## [1] 25
list_of_lists <- list("arroz", "pasta", list("manzanas", "kiwis", "uvas"), c("leche", "huevo", "mantequilla", 3))
print(list_of_lists)
## [[1]]
## [1] "arroz"
##
## [[2]]
## [1] "pasta"
##
## [[3]]
## [[3]][[1]]
## [1] "manzanas"
##
## [[3]][[2]]
## [1] "kiwis"
##
## [[3]][[3]]
## [1] "uvas"
##
##
## [[4]]
## [1] "leche" "huevo" "mantequilla" "3"
Las siguientes funciones permiten evaluar si un vector es de un tipo específico.
is.logical(TRUE)
## [1] TRUE
is.character("¡Hola, mundo!")
## [1] TRUE
is.integer(42L)
## [1] TRUE
is.double(2)
## [1] TRUE
is.na(NA)
## [1] TRUE
is.nan(NaN)
## [1] TRUE
is.infinite(-Inf)
## [1] TRUE
typeof es una función que nos permite saber el tipo de vector que almacena un objeto.
typeof(x)
## [1] "character"
length es una función que nos permite saber el tamaño de un vector.
length(a)
## [1] 1
Para acceder al contenido de un vector en una posición en particular. Utilice [] y el índice de la posición de la que desea obtener el contenido.
print(y[1])
## [1] "2"
Puede acceder al contenido de varias posiciones utilizando un vector de índices.
print(y[1:2])
## [1] "2" "3"
print(y[c(1, 3)])
## [1] "2" "dos"
De la misma forma, puede editar el contenido de un vector.
y[1:2] <- c(5, 6)
print(y)
## [1] "5" "6" "dos" "tres"
Las siguientes funciones permiten convertir el tipo de un vector.
x <- "TRUE"
as.logical(x)
## [1] TRUE
x <- 1
as.character(x)
## [1] "1"
x <- "3"
as.numeric(x)
## [1] 3
El siguiente bloque de código multiplica dos objetos previamente instanciados guardando el valor resultante en una tercera variable.
a <- 1
factor_exp <- 300
valor_real <- a * factor_exp
print(valor_real)
## [1] 300
Instanciamos un vector.
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Recuerde que las operaciones se ejecutan por elemento.
x + 2
## [1] 3 4 5 6 7 8 9 10 11 12
sqrt(x)
## [1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751 2.828427
## [9] 3.000000 3.162278
x * c(2, 4, 8, 10, 12)
## [1] 2 8 24 40 60 12 28 64 90 120
x * c(2, 4, 2)
## Warning in x * c(2, 4, 2): longitud de objeto mayor no es múltiplo de la
## longitud de uno menor
## [1] 2 8 6 8 20 12 14 32 18 20
x * c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
## [1] 10 40 90 160 250 360 490 640 810 1000
Observe que algunas operaciones aritméticas se ejectutan de forma matricial.
sum(x)
## [1] 55
mean(x)
## [1] 5.5
median(x)
## [1] 5.5
min(x)
## [1] 1
max(x)
## [1] 10
sample(x, size=5)
## [1] 8 4 9 5 2
El siguiente bloque de código instancia un objeto con un vector unitario con valor 5, y después con una instrucción if evalúa si el valor del objeto es negativo. Si el valor del objeto es negativo, lo multiplica por -1.
num <- -5
if (num < 0) {
print("El número es negativo.")
print("Lo volveré positivo.")
num <- num * -1 # Convierte por -1 para invertir su signo
print("Ahora el número es positivo.")
}
## [1] "El número es negativo."
## [1] "Lo volveré positivo."
## [1] "Ahora el número es positivo."
print(num)
## [1] 5
El siguiente bloque de código es el mismo que el anterior, pero contiene una instrucción para aquellos casos en los que no se cumpla la condición inicial.
num <- 8
if (num < 0) {
print("El número es negativo.")
print("Lo volveré positivo.")
num <- num * -1 # Convierte por -1 para invertir su signo
print("Ahora el número es positivo.")
} else {
print("Tu número siempre fue positivo.")
}
## [1] "Tu número siempre fue positivo."
print(num)
## [1] 8
x después de ejecutar el siguiente código?x <- 1
if (x == 1) {
x <- 2
if (x == 1) {
x <- 3
}
}
if y else para evaluar si la media de pobalación en el ejercicio anterior es mayor o igual que 30. En caso de que lo sea, imprima “La media de población es mayor o igual que 30.”, y en caso contrario, imprima el mensaje acorde.El siguiente bloque de código itera sobre todos los elementos de un vector e imprime el contenido de cada uno de estos.
mi_vector <- c(1, 2, 4, 5, 6, "siete", "ocho")
for (i in mi_vector) {
print(i)
}
## [1] "1"
## [1] "2"
## [1] "4"
## [1] "5"
## [1] "6"
## [1] "siete"
## [1] "ocho"
for?mi_vector <- c(1, 2, 4, 5, 6)
for (i in mi_vector) {
print(i + 1)
}
## [1] 2
## [1] 3
## [1] 5
## [1] 6
## [1] 7
for, if y else (en caso de ser necesario) para corregir el vector de edades que ya había almacenado.El siguiente bloque de código equivale a una función que invierte el signo de un número.
invierte_signo <- function(x){
x * -1
}
invierte_signo(-1)
## [1] 1
invierte_signo(2)
## [1] -2
n del vector de edades corregidas del censo de población de Z y calcule su media, dado un factor de expansión e.n sea menor al tamaño de la población total de Z.